package deposito.integracion;

import javax.ejb.ActivationConfigProperty;
import javax.ejb.EJB;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

import deposito.enums.TipoMensaje;
import deposito.facade.IFACADE;
import deposito.service.ILog;
import deposito.service.LogDeErrores;


@MessageDriven(
	activationConfig = { @ActivationConfigProperty(
			propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(
			propertyName = "destination", propertyValue = "queue/despacho")
	}, 
	mappedName = "queue/despacho")
public class ConsumidorJMSDespacho implements MessageListener {

	@EJB
	private ILog iLog;
	
	@EJB
	private IFACADE iFacade;
	
	//onMessage
    public void onMessage(Message message) {

    	TextMessage textMessage = (TextMessage) message;
        try
        {
        	System.out.println("Mensaje recibido en COLA DESPACHO: " + textMessage.getText());
        	iFacade.recibirSolicitudArticulo(textMessage.getText());
        }
        catch (Exception e){
        	iLog.log("onMessage: (ConsumidorJMSDespacho) - " + e.getMessage(), TipoMensaje.ERROR.toString());
			System.err.println(e.getMessage());
			LogDeErrores.getInstancia().crearLogDeErrores("Error en onMessage (ConsumidorJMSDespacho) ", e.getMessage(), LogDeErrores.getInstancia().getStackTrace(e.getStackTrace()));
        } 
    }
    
}
